c++ - VC++ 2010 : Show open dialog hangs
全部标签 假设有一个CString变量存储文件的完整路径。现在我只能从if中找到文件名。如何在vc++中做到这一点。CStringFileName="c:\Users\Acer\Desktop\FolderName\abc.dll";现在我只想要abc.dll。 最佳答案 您可以使用PathFindFileName.请记住,您必须对路径字符串中的\字符进行转义! 关于c++-在vc++中仅从文件的完整路径中查找文件名,我们在StackOverflow上找到一个类似的问题:
调试时,有时您需要附加一个已经在运行的进程,而不是仅仅在调试器中启动应用程序。我自己通常会调用Sleep()或MessageBox,这样更容易附加调试器。我担心其中一些最终可能会提交给源代码管理。避免这种情况的最佳方法是什么,同时仍然延迟足够的时间以便您可以将调试器附加到正在运行的进程?用#ifdef_DEBUG保护sleep或消息框是一种方法,但我想知道是否有更好的方法。对于Sleep,您还有可能无法及时连接的问题。使用MessageBox时,您可能会遇到远程调试或调试没有可见GUI的进程的问题(例如在Vista上作为服务运行) 最佳答案
有没有人注意到,如果您将一个exe作为资源导入,它会重新设置基址,而且它的PEheader似乎也被重建了?有时候这很烦人。有谁知道如何禁用rebase!?在C++中重现的步骤:1)编译一个helloworld并手动将其基址(在属性中)设置为0x10000002)创建第二个项目并将helloworld包含到资源中。同样手动设置它的基地址,如上。3)构建第二个项目4)从资源中提取exe,用Pe编辑器查看!它被设置回0x400000。为什么?! 最佳答案 您如何将EXE作为资源包含到第二个项目中?使用这些定义:#defineBINFILE
我想问一些我想用VisualStudio2010尝试的事情。我通过在项目属性-->C/C++-->输出文件(/FAs)中将选项设置为“汇编程序输出”,从.cpp文件生成一个.asm文件。我的问题是,如果我想在.asm文件中进行一些修改,然后链接再次保留我在汇编级别所做的修改。如果您能提供确切的步骤,包括项目属性中可能需要的正确配置,那将非常有帮助。 最佳答案 这是教程http://www.cs.virginia.edu/~evans/cs216/guides/vsasm.html 关于c
我刚刚安装了VisualStudio2010,想通过编写一个helloworld应用程序来测试它。#includeusingnamespacestd;intmain(){cout尝试编译后出现这个错误errorC1083:Cannotopenincludefile:'iostream':Nosuchfileordirectory这是我的visualstudioinclude目录$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;还有
我正在VS2012中处理一个VC++项目,完整编译需要大约8-10分钟。我知道PCH可以将编译时间加快10倍。我目前在我的项目中禁用了PCH,我在需要的地方包含了头文件。如何开始使用PCH?我到处寻找“如何”指南,但我得到的只是文档。我假设我必须:为PCH配置我的项目,创建一个空白的PCH头文件从每个.cpp收集标题文件并将其放入PCH头文件修改每个文件,删除所有头文件导入重新编译并希望一切正常;)我如何开始这个(特别是#1)?您是否修改过一个项目以使用PCH,其中有哪些绊脚石或常见问题/问题?PCH是否会导致任何问题,还是与正常包含的编译时/运行时行为相同?是否有工具可以自动化该过程
考虑以下程序:#includetemplatevoidfoo(constT*x){x();}voidbar(){std::cout它在clang++和VC++上编译良好,但g++给出以下编译器错误(参见现场演示here)main.cpp:Infunction'intmain()':main.cpp:10:9:error:nomatchingfunctionforcallto'foo(void(&)())'foo(bar);^main.cpp:3:6:note:candidate:templatevoidfoo(constT*)voidfoo(constT*x){^~~main.cpp:
例如,我有两个header.h文件位于两个不同的目录include1和include2。我的源代码文件使用不指定确切位置的常规包含,如下所示:#include"header.h"在项目配置中,我将我的include1和include2文件夹都设置在附加包含目录列表中。问题是当我构建我的项目时,每次都会选择include1文件夹,无论我在附加包含列表中定义它们的顺序如何。如果我想使用特定的文件夹或特定的头文件而不是另一个(如果它们具有相同的文件名),是否有任何方法可以强制执行搜索顺序? 最佳答案 包含顺序(MS的documented)
我需要一个图片库,我一直在研究FreeImage,http://freeimage.sourceforge.net/.我想将它与我的应用程序静态链接。我尝试下载二进制文件并将其链接,但是当我尝试调用它们的函数时出现2019链接器错误,尽管我肯定我链接正确。然后我尝试下载他们的源代码,将他们的“FreeImageLib.2008”转换为VS2010并构建它。它自己构建得很好,但是在链接它时我仍然遇到同样的问题,我使用它的应用程序仍然提示链接器错误。我还设置了所有项目配置以匹配我的其他项目,因此与/MDd或/MTd等没有冲突。我在他们的源代码中做了一些挖掘,有像“FREEIMAGE_LIB
我知道有一些关于如何将msvcr120.dll/msvcp120.dll包含到您的项目中的问题。但我想放弃这种依赖。我在VisualStudio2013中以Release版本编译程序。我不依赖于任何VS特定命令(#pragma等)或预编译header等。我想将它编译成一个单一版本的.exe并提供给用户而不要求他安装VC++RedistributesforVS(用户将在Windows7、Windows8,也许是WindowsXP)。这可能吗?如果是,怎么办? 最佳答案 您可以通过设置/MT标志将运行时静态链接到您的项目。您可以在Vis